package com.etime.shycourse.services.impl;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.etime.shycourse.dao.CourseAdviceLogMapper;
import com.etime.shycourse.dto.CourseAdviceLogDto;
import com.etime.shycourse.pojo.CourseAdviceLog;
import com.etime.shycourse.services.interfaces.CourseAdviceLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 微信客服服务层实现类（课程咨询记录服务层）
 *
 * @author zw
 */
@Service
public class CourseAdviceLogServiceImpl implements CourseAdviceLogService {

    @Autowired
    private CourseAdviceLogMapper courseAdviceLogMapper;

    /**
     * 添加课程咨询记录
     *
     * @param log
     * @return
     */
    @Override
    public int insertCourseAdviceLog(CourseAdviceLog log) {
        return courseAdviceLogMapper.insert(log);
    }

    /**
     * 分页查询课程咨询记录
     *
     * @param log      查询条件
     *                 包含：（课程id,课程名称，机构id，时间段）
     * @param pagenum  当前第几页
     * @param pagesize 每页多少行
     * @return
     */
    @Override
    public Page<CourseAdviceLog> selectCourseAdviceLogByPage(CourseAdviceLogDto log, Long pagenum, Long pagesize) {
        Page<CourseAdviceLog> page;
        if (pagenum != null && pagesize != null) {
            page = new Page<>(pagenum, pagesize);
        } else {
            page = new Page<>();
        }
        //处理条件 课程名 advicecoursename
        if (log.getAdvicecoursename() != null) {
            log.setAdvicecoursename("%" + log.getAdvicecoursename().trim() + "%");
        }
        return courseAdviceLogMapper.selectCourseAdviceLogByPage(log, page);
    }

    /**
     * 分页查询课程咨询记录的统计
     *
     * @param log      查询条件
     *                 包含：（  包含：（时间段，机构id）
     * @param pagenum  当前第几页
     * @param pagesize 每页多少行
     * @return Page<CourseAdviceLogDto>
     */
    @Override
    public Page<CourseAdviceLogDto> selectCourseAdviceLogAdviceUserCountPage(CourseAdviceLogDto log, Long pagenum, Long pagesize) {
        Page<CourseAdviceLog> page;
        if (pagenum != null && pagesize != null) {
            page = new Page<>(pagenum, pagesize);
        } else {
            page = new Page<>();
        }
        return courseAdviceLogMapper.selectCourseAdviceLogAdviceUserCountPage(log, page);
    }

    /**
     * 查询所有机构 课程咨询的总记录
     *
     * @param log 查询条件
     *            包含：（时间段，机构id）
     * @return List<CourseAdviceLogDto>
     */
    @Override
    public List<CourseAdviceLogDto> selectCourseAdviceLogOrgCount(CourseAdviceLogDto log) {
        return courseAdviceLogMapper.selectCourseAdviceLogOrgCount(log);
    }
}
